package co.com.inventarios.logica;

import java.util.List;

import co.com.inventarios.modelo.Probodega;
import co.com.inventarios.modelo.ProbodegaWork;
import co.com.inventarios.modelo.Producto;
import co.com.inventarios.modelo.ProductoWork;
import co.com.inventarios.modelo.Prounimed;
import co.com.inventarios.modelo.ProunimedWork;
import co.com.inventarios.persistencia.QueryProductoDAO;

public interface IProductoLogica {

	public void grabarProducto(String codigo, String nombre, Long activo)
			throws Exception;

	public List<Producto> buscarTodosProducto() throws Exception;

	public List<Producto> consultarProducto(String propiedad, String valor)
			throws Exception;
	
	public String cargar_ProUnimed(String producto, String unidad)throws Exception;
	
	public Producto consultarRegProducto(String valor) throws Exception;

	public void eliminarProducto(String codigo) throws Exception;

	public ProductoWork[] findProductoSelectedRow(List<Producto> lista)
			throws Exception;
	
	public ProunimedWork[] findProunimedSelectedRow(List<Prounimed> lista)
	throws Exception;
	
	public ProbodegaWork[] findProbodegaSelectedRow(List<Probodega> lista)
	throws Exception;

	public List<Producto> findByPropertyAll(String propiedad, String valor,
			String expresion) throws Exception;

	public List<Producto> findAll(String expresion) throws Exception;

	public void Eliminar_Producto(Producto reg) throws Exception;

	public void Guarda_Producto(Producto reg) throws Exception;

	public void Modifica_Producto(Producto reg) throws Exception;
	
	public Producto findByPropertyActivo(String propiedad,
			String valor) throws Exception ;
	
	public List<Producto> findByPropertyActivoLista(String propiedad) throws Exception ;

}
